While, as will be understood from the following description, the present invention was developed for efficient redrawing of displayed areas around an animated character displayed on a desktop of a windows-based operating system, it is to be understood that the invention can also be used in other environments.
It is now common for operating systems to have a shell that provides a graphical user interface (GUI). The shell is a piece of software (either a separate program or component part of the operating system) that provides direct communication between the user and the operating system. The GUI typically provides a graphical icon-oriented and/or menu driven environment for the user to interact with the operating system.
The GUI of many operating system shells is based on a desktop metaphor. More specifically, the GUI is intended to create a graphical environment which simulates working at a desk. These GUIs typically employ a windowing environment with a desktop. The windowing environment presents the user with specially delineated areas of the screen called windows, each of which is dedicated to a particular application program. Each window can act independently, as if it were a virtual display device under control of its particular application program. Windows can typically be resized, moved around the display, and stacked so as to overlay another. In some windowing environments, windows can be minimized to an icon or increased to a full-screen display. Usually, the windows have a top-to-bottom order in which they are displayed, with the top window at a particular location on the screen overlaying any other window at that same location. The top-most window has the "focus" and accepts the user's input. The user can switch other windows to the top by clicking with a mouse or other pointer device, or by inputting certain key combinations. This allows the user to work with multiple application programs in a manner similar to physically working with multiple paper documents arbitrarily stacked or arranged on an actual desk.
The desktop of the graphical user interface is a screen display containing images of icons, active and inactive application programs displayed in windows on the desktop image. An active application program is an application program that frequently regenerates the image displayed in its window because events associated with the program frequently change. Each time an event changes the window associated with the program, the window must be regenerated. Examples of active application programs are programs that collect data and control a clock or stock ticker tape display. Inactive application programs are programs that do not require the frequent regeneration of the image displayed in their window. A word processing or spreadsheet program displaying a document in its associated window is an example of an inactive program. Such programs become active when they begin automatically scrolling the displayed image or present new display screens.
The desktop may present windows associated with user help application programs. A user help application program may present within its associated window instructional text or an animation sequence of a character. Because animated characters have proven to be an effective user friendly tool for guiding and teaching users, animators and application educators have been seeking ways to improve upon their effectiveness. One way animators and application educators have found is to free the animated character from the confines of a window, thereby allowing the character to more positively interact with windows or other items displayed on the desktop.
Despite the noted interactive advantage, there exists some conflict between freely moving interactive characters and present display techniques that reduce the effectiveness of each. In present windowing environments whatever is displayed is stored in a single layer memory space. For example, if a first window of an inactive program overlays a portion of a second window of an inactive program, the portion of the second window covered is not stored, only what is displayed is stored. If the first window is moved or deleted, thereby exposing the covered portion of the second window, the operating system requests the application program running in the second window to regenerate or repaint the portion of the second window that was previously covered. However, repainting even a small portion of a window may cause an application to recalculate its internal state and possibly require a repainting of the entire window.
Active application program window repainting is not an issue with respect to unconfined animated characters, because operating systems are always requesting active application program windows to repaint themselves, regardless of what is displayed on or around them. In contrast, repainting of inactive application program windows is an issue with respect to unconfined animated characters. An unconfined animated character will uncover a small portion of the windows or desktop the character overlays each time the character changes position. Frames of an animated sequence are generated at approximately 10-12 frames per second. If each successive frame of a character animated sequence uncovers just a pixel of an inactive application program window, in the past, the operating system was required to request that the inactive application program perform a repaint at a rate of 10-12 times per second. Present systems are unable to efficiently execute window repaints at this rate. The result is an annoying display flicker and greatly reduced operating system performance.
The present invention is directed to overcoming the foregoing and other disadvantages. More specifically, the present invention is directed to providing a method, system and computer product for improving the efficiency of redrawing of unconfined animated characters on a desktop in a windows-based operating system.